

static func move(_self, delta):
	var gear_radius = _self.gear_radius;
	var gear_speed = _self.gear_speed;
	var move_speed = _self.move_speed;
	var mp = _self.get_local_mouse_position();
	var self_c = _self.self_c;
	#var glb_func = emit_signal('get_global_func');
	#var kp = glb_func.kp;
	#var getDir = glb_func.getDir;
	var num_fct = gb.numKey_factor();
	if(mp.distance_to(Vector2(0,0)) < gear_radius):
		var spd_factor = num_fct * 45
		_self.gear_speed += delta * spd_factor * (gb.kp(KEY_UP) - gb.kp(KEY_DOWN))
		_self.position.x += ( gb.getDir(0) - gb.getDir(2) ) * move_speed * delta;
		_self.position.y += ( gb.getDir(3) - gb.getDir(1) ) * move_speed * delta;
		var ff_factor = num_fct * 0.1
		_self.gear_fractionFactor += delta * ff_factor * (gb.kp(KEY_RIGHT) - gb.kp(KEY_LEFT))
		if(gb.ajp(mwu) or gb.ajp(mwd)):
			_self.resize(num_fct * (gb.ajp(mwu) - gb.ajp(mwd)));
		_self.queue_redraw()
	
	if(mp.distance_to(Vector2(0,0)) < gear_radius ):
		if(self_c != Color.BLUE):
			_self.self_c = Color.BLUE;
			_self.redraw()
	else: if(self_c != Color.WHITE):
		_self.self_c = Color.WHITE;
		_self.redraw()
	
	
	if(_self.gear_radius <= 0):
		_self.resize(5, false);

const mwu = 'mouse_scroll_up';
const mwd = 'mouse_scroll_down';
